package com.mail.service;

import com.mail.common.DataResult;
import com.mail.dto.QuartzEmailDto;
import lombok.SneakyThrows;

public interface QuartzJobService {
    /**
     * 添加调度任务
     */
    @SneakyThrows
    DataResult saveJob(QuartzEmailDto quartzEmailDto);

    /**
     * 重新定制定时任务
     */
    @SneakyThrows
    void rescheduleJob(String jobName, String cron);

    /**
     * 暂停定时任务
     */
    @SneakyThrows
    void pauseJob(String jobName);

    /**
     * 恢复定时任务
     */
    @SneakyThrows
    void resumeJob(String jobName);

    /**
     * 删除定时任务
     */
    @SneakyThrows
    void deleteJob(String jobName);

    /**
     * 查询用户下的定时任务
     */
    @SneakyThrows
    DataResult listJobsByGroupName(String groupName);
}
